

from core.himesis import Himesis
import cPickle as pickle
from uuid import UUID

class HMM2MM(Himesis):
    def __init__(self):
        """
        Creates the himesis graph representing the AToM3 model HMM2MM.
        """
        # Flag this instance as compiled now
        self.is_compiled = True
        
        super(HMM2MM, self).__init__(name='HMM2MM', num_nodes=14, edges=[])
        
        # Add the edges
        self.add_edges([(3, 4), (4, 11), (3, 5), (5, 10), (11, 0), (0, 10), (1, 6), (1, 7), (9, 2), (2, 8), (6, 9), (7, 8), (12, 8), (13, 9), (10, 12), (11, 13)])
        # Set the graph attributes
        self["mm__"] = pickle.loads("""(lp1
S'SimpleDSLTransMM'
p2
a.""")
        self["name"] = """MM2MM"""
        self["GUID__"] = UUID('7f931dbe-5c05-4dbe-bd2a-519a5f843655')
        
        # Set the node attributes
        self.vs[0]["mm__"] = """directLink_T"""
        self.vs[0]["GUID__"] = UUID('4e751d56-ddd5-4c9c-855a-ca73b493c535')
        self.vs[1]["mm__"] = """MatchModel"""
        self.vs[1]["GUID__"] = UUID('8ddb96f0-1f87-4995-b686-bcc8a4cb55ea')
        self.vs[2]["mm__"] = """indirectLink_S"""
        self.vs[2]["GUID__"] = UUID('86bf6a3f-85dd-4bff-a3c6-fe38df0797f5')
        self.vs[3]["mm__"] = """ApplyModel"""
        self.vs[3]["GUID__"] = UUID('2483df9d-65ec-4047-af18-613210550ad3')
        self.vs[4]["mm__"] = """apply_contains"""
        self.vs[4]["GUID__"] = UUID('9971bec7-67a1-4a24-81d2-8282c24a6705')
        self.vs[5]["mm__"] = """apply_contains"""
        self.vs[5]["GUID__"] = UUID('5fc9875d-012c-46f1-818c-7b88325fd49a')
        self.vs[6]["mm__"] = """match_contains"""
        self.vs[6]["GUID__"] = UUID('b1ca9921-fb40-40f4-95a2-6c261026efdc')
        self.vs[7]["mm__"] = """match_contains"""
        self.vs[7]["GUID__"] = UUID('909f02f8-46e0-477b-9ee0-b0457fa46699')
        self.vs[8]["mm__"] = """Male_S"""
        self.vs[8]["name"] = """m2"""
        self.vs[8]["GUID__"] = UUID('64ceb779-ca3b-4b99-a2d3-fe6333c7382a')
        self.vs[9]["mm__"] = """Male_S"""
        self.vs[9]["name"] = """m1"""
        self.vs[9]["GUID__"] = UUID('5bda89e2-6f8a-4931-96d7-24159ff162c8')
        self.vs[10]["mm__"] = """Male_T"""
        self.vs[10]["name"] = """m2"""
        self.vs[10]["GUID__"] = UUID('21205162-4101-4426-bdbe-693d6447ebf1')
        self.vs[11]["mm__"] = """Male_T"""
        self.vs[11]["name"] = """m1"""
        self.vs[11]["GUID__"] = UUID('707c567c-686c-4597-a90e-d318546c0450')
        self.vs[12]["mm__"] = """backward_link"""
        self.vs[12]["GUID__"] = UUID('d3a11f16-58b9-4ced-9dbb-defd8ee94408')
        self.vs[13]["mm__"] = """backward_link"""
        self.vs[13]["GUID__"] = UUID('03a2000b-86f3-4b8b-9ff4-c7244f76ee6d')

